Fee calculation in LN
off-chain
MUST set fee_proportional_millionths to the amount (in millionths of a satoshi) it will charge per transferred satoshi.
on-chain
Fee をどのように予測するかは BOLT3 に記載がある is based on the current feerate_per_kw
BOLT では per kw(kilo weight) を使うみたい
feerate_per_kw indicates the initial fee rate in satoshi per 1000-weight (i.e. 1/4 the more normally-used 'satoshi per 1000 vbytes')
vbyte と weight の関係は
weight * 4 = vbyte
vbyte / 4 = weight
たとえば LND は /Kw の fee から /KvByte を算出するのは、単に4倍する(WitnessScaleFactor は4)
code:fee.go
// FeePerKVByte converts the current fee rate from sat/kw to sat/kb.
func (s SatPerKWeight) FeePerKVByte() SatPerKVByte {
return SatPerKVByte(s * blockchain.WitnessScaleFactor)
}
per kw -> per vByte
(per kw) * 4 / 1000
LND
json は feePerKb
厳密には satoshi per kilo vByte
vByte を b にするのやめてほしい
この値を per vByte に変換するには
(JSON の値) * 4 * 1/1000